package com.ruoyi.common.customize.redis.constants;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.concurrent.TimeUnit;

/**
 * Redis缓存key常量声明
 *
 * @since 2022/11/1 18:32
 */
@Getter
@AllArgsConstructor
public enum RedisKeyEnum {

    // -------- 配置缓存-开始 --------

    /**
     * 持久化缓存前缀
     * <p>persistent_cache:持久化缓存名称
     */
    PERSISTENT_CONFIG_PREFIX("persistent_cache:%s", null, null),

    /**
     * 平台缓存（hash）
     */
    PLATFORM("platform", null, null),


    // -------- 配置缓存-结束 --------

    /**
     * 计数
     */
    INCR_HASH_PREFIX("count_hash", null, null),

    /**
     * 策略-订单同步次数统计（hash）
     */
    STRATEGY_ORDER_CONTRACT_SYNC_COUNT("strategy_order_contract_sync_count", null, null);

    /**
     * redis缓存的key名称
     */
    private final String key;
    /**
     * redis缓存的过期时间
     */
    private final Long expire;
    /**
     * redis缓存的过期时间单位
     */
    private final TimeUnit expireUnit;

    /**
     * 获得持久化缓存的key
     *
     * @return {@link String}
     * @since 2022/11/24 14:05
     */
    public String getPersistentCacheKey() {
        return String.format(PERSISTENT_CONFIG_PREFIX.key, key);
    }

    /**
     * 获得计数缓存的key
     *
     * @return {@link String}
     * @since 2022/11/24 14:05
     */
    public String getIncrCacheKey() {
        return String.format(INCR_HASH_PREFIX.key, key);
    }
    }
